package com.bdqn.ordersystem.dao;

import com.bdqn.ordersystem.pojo.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OrderDao {
    //条件查询
    List<Order> selectByCondition(Order order);
    //根据ID查询
    Order selectById(Integer id);
    //新增工单
    int insert(Order order);
    //接单
    int updateReceive(@Param("id") Integer id,
                      @Param("receiveBy") String receiveBy);
    //完结工单
    int updateEnd(@Param("id") Integer id,
                  @Param("resume") String resume,
                  @Param("logPath") String logPath
    );
    //状态回退
    int updateCancel(@Param("id") Integer id,
                     @Param("stutas") Integer stutas);
    //删除
    int delete(@Param("id") Integer id );

    /**
     * 按条件分页查询（在途工单）
     * @param areaId 区域id
     * @param centerId 中心id
     * @param address 模糊地址
     * @param from 起始位置
     * @param pageSize 分页大小
     * @return
     */
    List<Order>select(@Param("areaId") Integer areaId,
                      @Param("centerId") Integer centerId,
                      @Param("address") String address,
                      @Param("from") Integer from,
                      @Param("pageSize") Integer pageSize);

    /**
     * 按条件分页查询（待处理工单）
     * @param areaId 区域id
     * @param centerId 中心id
     * @param address 模糊地址
     * @param from 起始位置
     * @param pageSize 分页大小
     * @return
     */
    List<Order>select1(@Param("areaId") Integer areaId,
                      @Param("centerId") Integer centerId,
                      @Param("address") String address,
                      @Param("from") Integer from,
                      @Param("pageSize") Integer pageSize);

    int selectCount(@Param("areaId") Integer areaId,
                    @Param("centerId") Integer centerId,
                    @Param("address") String address);
}
